((function_call
  name:
    [
      (identifier) @_cdef_identifier
      (_
        _
        (identifier) @_cdef_identifier)
    ]
  arguments:
    (arguments
      (string
        content: _ @injection.content)))
  (#eq? @_cdef_identifier "cdef")
  (#set! injection.language "c"))

((comment) @injection.content
  (#lua-match? @injection.content "[-][-][-][%s]*@")
  (#offset! @injection.content 0 3 0 0)
  (#set! injection.language "luadoc"))

; string.match("123", "%d+")
(function_call
  (dot_index_expression
    field: (identifier) @_method
    (#any-of? @_method "find" "format" "match" "gmatch" "gsub"))
  arguments:
    (arguments
      .
      (_)
      .
      (string
        content: _ @injection.content))
  (#set! injection.language "luap"))

; ("123"):match("%d+")
(function_call
  (method_index_expression
    method: (identifier) @_method
    (#any-of? @_method "find" "format" "match" "gmatch" "gsub"))
  arguments:
    (arguments
      .
      (string
        content: _ @injection.content))
  (#set! injection.language "luap"))

((comment) @injection.content
  (#set! injection.language "comment"))
